import { defineConfig, globalIgnores } from 'eslint/config'
import globals from 'globals'
import js from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
import prettier from 'eslint-plugin-prettier'
import eslintConfigPrettier from 'eslint-config-prettier'

export default defineConfig([
	{
		name: 'app/files-to-lint',
		files: ['**/*.{js,mjs,jsx,vue}']
	},
	{
		plugins: {
			prettier // 启用 Prettier 插件
		},

		rules: {
			'vue/multi-word-component-names': [
				'warn',
				{
					ignores: ['index'] // vue组件名称多单词组成（忽略index.vue）
				}
			],
			'vue/no-setup-props-destructure': ['off'], // 关闭 props 解构的校验
			// 💡 添加未定义变量错误提示，create-vue@3.6.3 关闭，这里加上是为了支持下一个章节演示。
			'no-undef': 'error'
		}
	},
	globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),

	{
		languageOptions: {
			globals: {
				...globals.browser,
				ElMessage: 'readonly',
				ElMessageBox: 'readonly',
				ElLoading: 'readonly'
			}
		}
	},

	js.configs.recommended,
	...pluginVue.configs['flat/essential'],
	skipFormatting,
	eslintConfigPrettier
])
